package com.alibaba.citrus.cr.platform.enhance.repository;

import com.alibaba.lattice2.epoch.sdk.model.Result;
import com.epoch.app.bcorder.model.dto.RolePermissionSDO;
import com.epoch.app.bcorder.model.dto.RoleSDO;
import com.epoch.app.crplatformenhance.model.dto.QueryRoleRequest;

import java.util.List;

/**
 * @author zhoubc
 * @description: TODO
 * @date 2022/12/1 15:03
 */
public interface RoleRepository {

    /**
     * 创建角色
     * @param sdo
     * @return
     */
    Result<String> createRole(RoleSDO sdo);

    /**
     * 更新角色
     * @param sdo
     * @return
     */
    Result<Boolean> updateRole(RoleSDO sdo);

    /**
     * 移除角色
     * @param sdo
     * @return
     */
    Result<Boolean> removeRole(RoleSDO sdo);

    /**
     * 查询角色列表
     * @param request
     * @return
     */
    List<RoleSDO> queryRoleList(QueryRoleRequest request);

    /**
     * 查询角色详情
     * @param request
     * @return
     */
    RolePermissionSDO queryRoleInfo(QueryRoleRequest request);

}
